/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utils.parser;

import model.Doc;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import repco.RepCo;

/**
 *
 * @author falxa
 */
public final class Parser 
{
    public static void parseFile(File file, RepCo rc)
    {
        rc.addDocument(new Doc(rc.getDocuments().size(), file.getName()));
        
        try
        {
            // création d'une fabrique de parseurs SAX
            SAXParserFactory factory = SAXParserFactory.newInstance();

            // création d'un parseur SAX
            SAXParser parser = factory.newSAXParser();

            // lecture d'un fichier XML avec un DefaultHandler
            DefaultHandler handler = new DocumentHandler(rc);
            parser.parse(file, handler);
        } 
        catch(ParserConfigurationException pce)
        {
            System.out.println("Erreur de configuration du parseur");
            System.out.println("Lors de l'appel à newSAXParser()");
        } 
        catch(SAXException se)
        {
            System.out.println("Erreur de parsing");
            System.out.println("Lors de l'appel à parse()");
        }
        catch(IOException ioe)
        {
            System.out.println("Erreur d'entrée/sortie");
            System.out.println("Lors de l'appel à parse()");
        }
    }

}
